home *** CD-ROM | disk | FTP | other *** search
Unknown | 1985-07-12 | 5.1 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was not able to be converted.
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
100%
| file
| data
| default
| |
100%
| gt2
| Kopftext: 'cat simpoint.c'
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 63 61 74 20 73 69 6d 70 | 6f 69 6e 74 2e 63 0d 0a |cat simp|oint.c..|
|00000010| 00 00 00 00 2f 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |..../***|********|
|00000020| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000030| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000040| 2a 2a 5c 0d 0a 00 00 00 | 00 2a 20 09 09 09 09 09 |**\.....|.* .....|
|00000050| 20 20 20 20 20 20 2a 0d | 0a 00 00 00 00 2a 20 20 | *.|.....* |
|00000060| 20 73 69 6d 70 6f 69 6e | 74 2e 63 20 3d 20 50 6f | simpoin|t.c = Po|
|00000070| 69 6e 74 20 6f 70 65 72 | 61 74 69 6f 6e 73 20 66 |int oper|ations f|
|00000080| 6f 72 20 53 49 4d 50 50 | 3a 20 20 2a 0d 0a 00 00 |or SIMPP|: *....|
|00000090| 00 00 2a 20 20 20 53 69 | 6d 70 6c 65 20 49 4d 61 |..* Si|mple IMa|
|000000a0| 67 65 20 50 72 6f 63 65 | 73 73 69 6e 67 20 50 61 |ge Proce|ssing Pa|
|000000b0| 63 6b 61 67 65 2e 09 20 | 20 20 20 20 20 2a 0d 0a |ckage.. | *..|
|000000c0| 00 00 00 00 2a 20 20 20 | 43 6f 70 79 72 69 67 68 |....* |Copyrigh|
|000000d0| 74 20 28 63 29 20 31 39 | 38 37 2c 20 42 65 6e 6a |t (c) 19|87, Benj|
|000000e0| 61 6d 69 6e 20 4d 2e 20 | 44 61 77 73 6f 6e 20 20 |amin M. |Dawson |
|000000f0| 20 20 2a 0d 0a 00 00 00 | 00 2a 20 20 20 20 20 20 | *.....|.* |
|00000100| 45 64 69 74 20 56 65 72 | 73 69 6f 6e 3a 20 31 2e |Edit Ver|sion: 1.|
|00000110| 31 20 3a 20 4a 61 6e 2d | 32 39 2d 38 37 09 20 20 |1 : Jan-|29-87. |
|00000120| 20 20 20 20 2a 0d 0a 00 | 00 00 00 2a 20 09 09 09 | *...|...* ...|
|00000130| 09 09 20 20 20 20 20 20 | 2a 0d 0a 00 00 00 00 5c |.. |*......\|
|00000140| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000150| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000160| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2f 0d 0a |********|*****/..|
|00000170| 00 00 00 00 0d 0a 00 00 | 00 00 23 69 6e 63 6c 75 |........|..#inclu|
|00000180| 64 65 20 22 73 69 6d 70 | 70 2e 68 22 0d 0a 00 00 |de "simp|p.h"....|
|00000190| 00 00 0d 0a 00 00 00 00 | 65 78 74 65 72 6e 20 63 |........|extern c|
|000001a0| 68 61 72 20 2a 6d 61 6c | 6c 6f 63 28 29 3b 0d 0a |har *mal|loc();..|
|000001b0| 00 00 00 00 0d 0a 00 00 | 00 00 2f 2a 20 70 74 72 |........|../* ptr|
|000001c0| 61 6e 73 66 6f 72 6d 20 | 3d 20 74 72 61 6e 73 66 |ansform |= transf|
|000001d0| 6f 72 6d 20 74 68 65 20 | 69 6d 61 67 65 20 61 63 |orm the |image ac|
|000001e0| 63 6f 72 64 69 6e 67 20 | 74 6f 20 61 20 66 75 6e |cording |to a fun|
|000001f0| 63 74 69 6f 6e 20 74 61 | 62 6c 65 20 28 4c 55 54 |ction ta|ble (LUT|
|00000200| 29 20 2a 2f 0d 0a 00 00 | 00 00 69 6e 74 20 70 74 |) */....|..int pt|
|00000210| 72 61 6e 73 66 6f 72 6d | 28 78 2c 79 2c 64 78 2c |ransform|(x,y,dx,|
|00000220| 64 79 2c 74 61 62 6c 65 | 29 0d 0a 00 00 00 00 69 |dy,table|)......i|
|00000230| 6e 74 20 78 2c 79 3b 09 | 09 09 2f 2a 20 53 74 61 |nt x,y;.|../* Sta|
|00000240| 72 74 20 6f 66 20 61 72 | 65 61 20 74 6f 20 74 72 |rt of ar|ea to tr|
|00000250| 61 6e 73 66 6f 72 6d 20 | 2a 2f 0d 0a 00 00 00 00 |ansform |*/......|
|00000260| 69 6e 74 20 64 78 2c 64 | 79 3b 09 09 09 2f 2a 20 |int dx,d|y;.../* |
|00000270| 53 69 7a 65 20 6f 66 20 | 61 72 65 61 20 74 6f 20 |Size of |area to |
|00000280| 74 72 61 6e 73 66 6f 72 | 6d 20 2a 2f 0d 0a 00 00 |transfor|m */....|
|00000290| 00 00 50 49 58 45 4c 20 | 2a 74 61 62 6c 65 3b 09 |..PIXEL |*table;.|
|000002a0| 09 09 2f 2a 20 54 72 61 | 6e 73 66 6f 72 6d 61 74 |../* Tra|nsformat|
|000002b0| 69 6f 6e 20 74 61 62 6c | 65 20 2a 2f 0d 0a 00 00 |ion tabl|e */....|
|000002c0| 00 00 7b 0d 0a 00 00 00 | 00 09 72 65 67 69 73 74 |..{.....|..regist|
|000002d0| 65 72 20 69 6e 74 20 69 | 3b 0d 0a 00 00 00 00 0d |er int i|;.......|
|000002e0| 0a 00 00 00 00 23 69 66 | 64 65 66 20 43 48 45 43 |.....#if|def CHEC|
|000002f0| 4b 0d 0a 00 00 00 00 09 | 69 66 20 28 63 68 65 63 |K.......|if (chec|
|00000300| 6b 5f 61 72 65 61 28 78 | 2c 79 2c 64 78 2c 64 79 |k_area(x|,y,dx,dy|
|00000310| 2c 22 3c 70 74 72 61 6e | 73 66 6f 72 6d 3e 22 29 |,"<ptran|sform>")|
|00000320| 20 3d 3d 20 45 52 52 4f | 52 29 0d 0a 00 00 00 00 | == ERRO|R)......|
|00000330| 09 09 72 65 74 75 72 6e | 28 45 52 52 4f 52 29 3b |..return|(ERROR);|
|00000340| 0d 0a 00 00 00 00 23 65 | 6e 64 69 66 0d 0a 00 00 |......#e|ndif....|
|00000350| 00 00 09 77 68 69 6c 65 | 20 28 64 79 2d 2d 29 20 |...while| (dy--) |
|00000360| 7b 0d 0a 00 00 00 00 09 | 09 66 6f 72 20 28 69 20 |{.......|.for (i |
|00000370| 3d 20 78 20 3b 20 69 20 | 3c 20 64 78 2b 78 20 3b |= x ; i |< dx+x ;|
|00000380| 20 69 2b 2b 29 0d 0a 00 | 00 00 00 09 09 09 77 72 | i++)...|......wr|
|00000390| 69 74 65 5f 70 69 78 65 | 6c 28 69 2c 20 79 2c 20 |ite_pixe|l(i, y, |
|000003a0| 74 61 62 6c 65 5b 72 65 | 61 64 5f 70 69 78 65 6c |table[re|ad_pixel|
|000003b0| 28 69 2c 79 29 5d 29 3b | 0d 0a 00 00 00 00 09 09 |(i,y)]);|........|
|000003c0| 79 2b 2b 3b 0d 0a 00 00 | 00 00 09 7d 0d 0a 00 00 |y++;....|...}....|
|000003d0| 00 00 09 72 65 74 75 72 | 6e 28 4f 4b 29 3b 0d 0a |...retur|n(OK);..|
|000003e0| 00 00 00 00 7d 0d 0a 00 | 00 00 00 0d 0a 00 00 00 |....}...|........|
|000003f0| 00 2f 2a 20 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |./* ====|========|
|00000400| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000410| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000420| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000430| 3d 3d 3d 3d 20 2a 2f 0d | 0a 00 00 00 00 0d 0a 00 |==== */.|........|
|00000440| 00 00 00 2f 2a 20 68 69 | 73 74 6f 67 72 61 6d 20 |.../* hi|stogram |
|00000450| 3d 20 68 69 73 74 6f 67 | 72 61 6d 20 74 68 65 20 |= histog|ram the |
|00000460| 70 69 78 65 6c 20 76 61 | 6c 75 65 73 20 69 6e 20 |pixel va|lues in |
|00000470| 74 68 65 20 61 72 65 61 | 20 73 74 61 72 74 69 6e |the area| startin|
|00000480| 67 20 61 74 20 78 2c 79 | 0d 0a 00 00 00 00 20 2a |g at x,y|...... *|
|00000490| 20 61 6e 64 20 6f 66 20 | 73 69 7a 65 20 64 78 2c | and of |size dx,|
|000004a0| 64 79 2e 20 20 54 68 65 | 20 68 69 73 74 6f 67 72 |dy. The| histogr|
|000004b0| 61 6d 20 69 73 20 72 65 | 74 75 72 6e 65 64 20 69 |am is re|turned i|
|000004c0| 6e 20 74 68 65 20 6c 6f | 6e 67 20 61 72 72 61 79 |n the lo|ng array|
|000004d0| 20 68 2e 0d 0a 00 00 00 | 00 20 2a 2f 0d 0a 00 00 | h......|. */....|
|000004e0| 00 00 69 6e 74 20 68 69 | 73 74 6f 67 72 61 6d 28 |..int hi|stogram(|
|000004f0| 78 2c 79 2c 64 78 2c 64 | 79 2c 68 29 0d 0a 00 00 |x,y,dx,d|y,h)....|
|00000500| 00 00 69 6e 74 20 78 2c | 79 3b 09 09 2f 2a 20 53 |..int x,|y;../* S|
|00000510| 74 61 72 74 20 6f 66 20 | 61 72 65 61 20 74 6f 20 |tart of |area to |
|00000520| 68 69 73 74 6f 67 72 61 | 6d 20 2a 2f 0d 0a 00 00 |histogra|m */....|
|00000530| 00 00 69 6e 74 20 64 78 | 2c 64 79 3b 09 09 2f 2a |..int dx|,dy;../*|
|00000540| 20 53 69 7a 65 20 6f 66 | 20 61 72 65 61 20 74 6f | Size of| area to|
|00000550| 20 68 69 73 74 6f 67 72 | 61 6d 20 2a 2f 0d 0a 00 | histogr|am */...|
|00000560| 00 00 00 6c 6f 6e 67 20 | 2a 68 3b 09 09 2f 2a 20 |...long |*h;../* |
|00000570| 41 72 72 61 79 20 6f 66 | 20 68 69 73 74 6f 67 72 |Array of| histogr|
|00000580| 61 6d 20 76 61 6c 75 65 | 73 20 2a 2f 0d 0a 00 00 |am value|s */....|
|00000590| 00 00 7b 0d 0a 00 00 00 | 00 09 72 65 67 69 73 74 |..{.....|..regist|
|000005a0| 65 72 20 69 6e 74 20 69 | 3b 0d 0a 00 00 00 00 09 |er int i|;.......|
|000005b0| 6c 6f 6e 67 20 2a 70 68 | 3b 0d 0a 00 00 00 00 0d |long *ph|;.......|
|000005c0| 0a 00 00 00 00 23 69 66 | 64 65 66 20 43 48 45 43 |.....#if|def CHEC|
|000005d0| 4b 0d 0a 00 00 00 00 09 | 69 66 20 28 63 68 65 63 |K.......|if (chec|
|000005e0| 6b 5f 61 72 65 61 28 78 | 2c 79 2c 64 78 2c 64 79 |k_area(x|,y,dx,dy|
|000005f0| 2c 22 3c 68 69 73 74 6f | 67 72 61 6d 3e 22 29 20 |,"<histo|gram>") |
|00000600| 3d 3d 20 45 52 52 4f 52 | 29 0d 0a 00 00 00 00 09 |== ERROR|).......|
|00000610| 09 72 65 74 75 72 6e 28 | 45 52 52 4f 52 29 3b 0d |.return(|ERROR);.|
|00000620| 0a 00 00 00 00 23 65 6e | 64 69 66 0d 0a 00 00 00 |.....#en|dif.....|
|00000630| 00 0d 0a 00 00 00 00 09 | 70 68 20 3d 20 68 3b 09 |........|ph = h;.|
|00000640| 09 09 2f 2a 20 50 6f 69 | 6e 74 65 72 20 74 6f 20 |../* Poi|nter to |
|00000650| 68 69 73 74 6f 67 72 61 | 6d 20 61 72 72 61 79 20 |histogra|m array |
|00000660| 2a 2f 0d 0a 00 00 00 00 | 0d 0a 00 00 00 00 2f 2a |*/......|....../*|
|00000670| 20 43 6c 65 61 72 20 74 | 68 65 20 68 69 73 74 6f | Clear t|he histo|
|00000680| 67 72 61 6d 20 61 72 72 | 61 79 20 2a 2f 0d 0a 00 |gram arr|ay */...|
|00000690| 00 00 00 09 66 6f 72 20 | 28 69 20 3d 20 30 20 3b |....for |(i = 0 ;|
|000006a0| 20 69 20 3c 20 50 49 58 | 45 4c 5f 53 49 5a 45 20 | i < PIX|EL_SIZE |
|000006b0| 3b 20 69 2b 2b 29 20 2a | 70 68 2b 2b 20 3d 20 30 |; i++) *|ph++ = 0|
|000006c0| 4c 3b 0d 0a 00 00 00 00 | 2f 2a 20 43 6f 6d 70 75 |L;......|/* Compu|
|000006d0| 74 65 20 74 68 65 20 68 | 69 73 74 6f 67 72 61 6d |te the h|istogram|
|000006e0| 20 2a 2f 0d 0a 00 00 00 | 00 09 77 68 69 6c 65 20 | */.....|..while |
|000006f0| 28 64 79 2d 2d 29 20 7b | 0d 0a 00 00 00 00 09 09 |(dy--) {|........|
|00000700| 66 6f 72 20 28 69 20 3d | 20 78 20 3b 20 69 20 3c |for (i =| x ; i <|
|00000710| 20 78 20 2b 20 64 78 20 | 3b 20 69 2b 2b 29 0d 0a | x + dx |; i++)..|
|00000720| 00 00 00 00 09 09 09 68 | 5b 72 65 61 64 5f 70 69 |.......h|[read_pi|
|00000730| 78 65 6c 28 69 2c 79 29 | 5d 20 2b 3d 20 31 4c 3b |xel(i,y)|] += 1L;|
|00000740| 0d 0a 00 00 00 00 09 09 | 79 2b 2b 3b 0d 0a 00 00 |........|y++;....|
|00000750| 00 00 09 7d 0d 0a 00 00 | 00 00 0d 0a 00 00 00 00 |...}....|........|
|00000760| 09 72 65 74 75 72 6e 28 | 4f 4b 29 3b 0d 0a 00 00 |.return(|OK);....|
|00000770| 00 00 7d 0d 0a 00 00 00 | 00 0d 0a 00 00 00 00 2f |..}.....|......./|
|00000780| 2a 20 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |* ======|========|
|00000790| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000007a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000007b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000007c0| 3d 3d 20 2a 2f 0d 0a 00 | 00 00 00 0d 0a 00 00 00 |== */...|........|
|000007d0| 00 2f 2a 20 63 6c 69 70 | 5f 68 69 73 74 6f 20 3d |./* clip|_histo =|
|000007e0| 20 4d 65 61 73 75 72 65 | 20 74 68 65 20 68 69 73 | Measure| the his|
|000007f0| 74 6f 67 72 61 6d 2c 20 | 68 2c 20 61 6e 64 20 72 |togram, |h, and r|
|00000800| 65 74 75 72 6e 20 6d 69 | 6e 62 69 6e 2c 20 74 68 |eturn mi|nbin, th|
|00000810| 65 20 66 69 72 73 74 0d | 0a 00 00 00 00 20 2a 20 |e first.|..... * |
|00000820| 62 69 6e 20 61 62 6f 76 | 65 20 74 68 72 65 73 68 |bin abov|e thresh|
|00000830| 6f 6c 64 20 74 68 72 65 | 73 68 20 67 6f 69 6e 67 |old thre|sh going|
|00000840| 20 66 72 6f 6d 20 62 69 | 6e 20 30 20 75 70 77 61 | from bi|n 0 upwa|
|00000850| 72 64 73 2c 20 61 6e 64 | 20 6d 61 78 62 69 6e 2c |rds, and| maxbin,|
|00000860| 20 74 68 65 0d 0a 00 00 | 00 00 20 2a 20 66 69 72 | the....|.. * fir|
|00000870| 73 74 20 62 69 6e 20 61 | 62 6f 76 65 20 74 68 72 |st bin a|bove thr|
|00000880| 73 68 6f 6c 64 20 74 68 | 72 65 73 68 20 67 6f 69 |shold th|resh goi|
|00000890| 6e 67 20 66 72 6f 6d 20 | 62 69 6e 20 4d 41 58 50 |ng from |bin MAXP|
|000008a0| 49 58 20 64 6f 77 6e 77 | 61 72 64 73 0d 0a 00 00 |IX downw|ards....|
|000008b0| 00 00 20 2a 2f 0d 0a 00 | 00 00 00 69 6e 74 20 63 |.. */...|...int c|
|000008c0| 6c 69 70 5f 68 69 73 74 | 6f 28 68 2c 74 68 72 65 |lip_hist|o(h,thre|
|000008d0| 73 68 2c 6d 69 6e 62 69 | 6e 2c 6d 61 78 62 69 6e |sh,minbi|n,maxbin|
|000008e0| 29 0d 0a 00 00 00 00 6c | 6f 6e 67 20 2a 68 3b 09 |)......l|ong *h;.|
|000008f0| 09 09 2f 2a 20 50 6f 69 | 6e 74 65 72 20 74 6f 20 |../* Poi|nter to |
|00000900| 68 69 73 74 6f 67 72 61 | 6d 20 61 72 72 61 79 20 |histogra|m array |
|00000910| 2a 2f 0d 0a 00 00 00 00 | 69 6e 74 20 74 68 72 65 |*/......|int thre|
|00000920| 73 68 3b 09 09 09 2f 2a | 20 54 68 72 65 73 68 6f |sh;.../*| Thresho|
|00000930| 6c 64 20 66 6f 72 20 68 | 69 73 74 6f 67 72 61 6d |ld for h|istogram|
|00000940| 20 63 6f 75 6e 74 73 20 | 2a 2f 0d 0a 00 00 00 00 | counts |*/......|
|00000950| 69 6e 74 20 2a 6d 69 6e | 62 69 6e 2c 2a 6d 61 78 |int *min|bin,*max|
|00000960| 62 69 6e 3b 09 09 2f 2a | 20 52 65 74 75 72 6e 65 |bin;../*| Returne|
|00000970| 64 20 6d 69 6e 69 6d 75 | 6d 20 61 6e 64 20 6d 61 |d minimu|m and ma|
|00000980| 78 69 6d 75 6d 20 62 69 | 6e 73 20 2a 2f 0d 0a 00 |ximum bi|ns */...|
|00000990| 00 00 00 7b 0d 0a 00 00 | 00 00 09 72 65 67 69 73 |...{....|...regis|
|000009a0| 74 65 72 20 69 6e 74 20 | 69 3b 0d 0a 00 00 00 00 |ter int |i;......|
|000009b0| 09 72 65 67 69 73 74 65 | 72 20 6d 3b 0d 0a 00 00 |.registe|r m;....|
|000009c0| 00 00 0d 0a 00 00 00 00 | 2f 2a 20 47 6f 20 66 72 |........|/* Go fr|
|000009d0| 6f 6d 20 74 68 65 20 62 | 6f 74 74 6f 6d 20 62 69 |om the b|ottom bi|
|000009e0| 6e 20 75 70 2c 20 6c 6f | 6f 6b 69 6e 67 20 66 6f |n up, lo|oking fo|
|000009f0| 72 20 61 20 62 69 6e 20 | 61 62 6f 76 65 20 74 68 |r a bin |above th|
|00000a00| 72 65 73 68 6f 6c 64 20 | 2a 2f 0d 0a 00 00 00 00 |reshold |*/......|
|00000a10| 09 66 6f 72 20 28 69 20 | 3d 20 30 3b 20 69 20 3c |.for (i |= 0; i <|
|00000a20| 20 50 49 58 45 4c 5f 53 | 49 5a 45 20 3b 20 69 2b | PIXEL_S|IZE ; i+|
|00000a30| 2b 29 20 7b 0d 0a 00 00 | 00 00 09 09 69 66 20 28 |+) {....|....if (|
|00000a40| 68 5b 69 5d 20 3e 20 28 | 6c 6f 6e 67 29 74 68 72 |h[i] > (|long)thr|
|00000a50| 65 73 68 29 20 62 72 65 | 61 6b 3b 0d 0a 00 00 00 |esh) bre|ak;.....|
|00000a60| 00 09 7d 0d 0a 00 00 00 | 00 09 6d 20 3d 20 2a 6d |..}.....|..m = *m|
|00000a70| 69 6e 62 69 6e 20 3d 20 | 69 3b 0d 0a 00 00 00 00 |inbin = |i;......|
|00000a80| 0d 0a 00 00 00 00 2f 2a | 20 47 6f 20 66 72 6f 6d |....../*| Go from|
|00000a90| 20 74 68 65 20 74 6f 70 | 20 62 69 6e 20 64 6f 77 | the top| bin dow|
|00000aa0| 6e 2c 20 6c 6f 6f 6b 69 | 6e 67 20 66 6f 72 20 61 |n, looki|ng for a|
|00000ab0| 20 62 69 6e 20 61 62 6f | 76 65 20 74 68 72 65 73 | bin abo|ve thres|
|00000ac0| 68 6f 6c 64 20 2a 2f 0d | 0a 00 00 00 00 09 66 6f |hold */.|......fo|
|00000ad0| 72 20 28 69 20 3d 20 28 | 69 6e 74 29 4d 41 58 50 |r (i = (|int)MAXP|
|00000ae0| 49 58 20 3b 20 69 20 3e | 20 6d 20 3b 20 69 2d 2d |IX ; i >| m ; i--|
|00000af0| 29 20 7b 0d 0a 00 00 00 | 00 09 09 69 66 20 28 68 |) {.....|...if (h|
|00000b00| 5b 69 5d 20 3e 20 28 6c | 6f 6e 67 29 74 68 72 65 |[i] > (l|ong)thre|
|00000b10| 73 68 29 20 62 72 65 61 | 6b 3b 0d 0a 00 00 00 00 |sh) brea|k;......|
|00000b20| 09 7d 0d 0a 00 00 00 00 | 09 2a 6d 61 78 62 69 6e |.}......|.*maxbin|
|00000b30| 20 3d 20 69 3b 0d 0a 00 | 00 00 00 0d 0a 00 00 00 | = i;...|........|
|00000b40| 00 23 69 66 64 65 66 20 | 43 48 45 43 4b 0d 0a 00 |.#ifdef |CHECK...|
|00000b50| 00 00 00 09 69 66 20 28 | 2a 6d 61 78 62 69 6e 20 |....if (|*maxbin |
|00000b60| 3d 3d 20 2a 6d 69 6e 62 | 69 6e 29 20 7b 0d 0a 00 |== *minb|in) {...|
|00000b70| 00 00 00 20 20 20 20 70 | 72 69 6e 74 66 28 22 3c |... p|rintf("<|
|00000b80| 63 6c 69 70 5f 68 69 73 | 74 6f 3e 20 48 69 73 74 |clip_his|to> Hist|
|00000b90| 6f 67 72 61 6d 20 68 61 | 73 20 6f 6e 6c 79 20 31 |ogram ha|s only 1|
|00000ba0| 20 6f 72 20 6e 6f 20 62 | 69 6e 73 20 61 62 6f 76 | or no b|ins abov|
|00000bb0| 65 20 74 68 72 65 73 68 | 6f 6c 64 21 5c 6e 22 29 |e thresh|old!\n")|
|00000bc0| 3b 0d 0a 00 00 00 00 09 | 09 72 65 74 75 72 6e 28 |;.......|.return(|
|00000bd0| 45 52 52 4f 52 29 3b 0d | 0a 00 00 00 00 09 7d 0d |ERROR);.|......}.|
|00000be0| 0a 00 00 00 00 23 65 6e | 64 69 66 0d 0a 00 00 00 |.....#en|dif.....|
|00000bf0| 00 0d 0a 00 00 00 00 09 | 72 65 74 75 72 6e 28 4f |........|return(O|
|00000c00| 4b 29 3b 0d 0a 00 00 00 | 00 7d 0d 0a 00 00 00 00 |K);.....|.}......|
|00000c10| 0d 0a 00 00 00 00 2f 2a | 20 3d 3d 3d 3d 3d 3d 3d |....../*| =======|
|00000c20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000c30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000c40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000c50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 20 2a 2f 0d 0a 00 00 |========|= */....|
|00000c60| 00 00 0d 0a 00 00 00 00 | 2f 2a 20 70 6c 6f 74 5f |........|/* plot_|
|00000c70| 68 69 73 74 6f 20 3d 20 | 50 6c 6f 74 20 74 68 65 |histo = |Plot the|
|00000c80| 20 68 69 73 74 6f 67 72 | 61 6d 2c 20 68 2c 20 69 | histogr|am, h, i|
|00000c90| 6e 20 74 68 65 20 69 6d | 61 67 65 20 61 72 65 61 |n the im|age area|
|00000ca0| 20 73 74 61 72 74 69 6e | 67 20 61 74 0d 0a 00 00 | startin|g at....|
|00000cb0| 00 00 20 2a 20 78 2c 79 | 20 61 6e 64 20 6f 66 20 |.. * x,y| and of |
|00000cc0| 73 69 7a 65 20 64 78 2c | 64 79 2e 20 20 54 68 65 |size dx,|dy. The|
|00000cd0| 20 68 69 73 74 6f 67 72 | 61 6d 20 69 73 20 73 63 | histogr|am is sc|
|00000ce0| 61 6c 6c 65 64 20 74 6f | 20 66 69 74 20 69 6e 74 |alled to| fit int|
|00000cf0| 6f 20 74 68 69 73 0d 0a | 00 00 00 00 20 2a 20 61 |o this..|.... * a|
|00000d00| 72 65 61 2e 20 20 49 74 | 20 69 73 20 70 6c 6f 74 |rea. It| is plot|
|00000d10| 74 65 64 20 77 69 74 68 | 20 70 69 78 65 6c 20 76 |ted with| pixel v|
|00000d20| 61 6c 75 65 20 28 69 6e | 74 65 6e 73 69 74 79 29 |alue (in|tensity)|
|00000d30| 20 7a 2e 0d 0a 00 00 00 | 00 20 2a 2f 0d 0a 00 00 | z......|. */....|
|00000d40| 00 00 69 6e 74 20 70 6c | 6f 74 5f 68 69 73 74 6f |..int pl|ot_histo|
|00000d50| 28 78 2c 79 2c 64 78 2c | 64 79 2c 68 2c 7a 29 0d |(x,y,dx,|dy,h,z).|
|00000d60| 0a 00 00 00 00 69 6e 74 | 20 78 2c 79 3b 09 09 2f |.....int| x,y;../|
|00000d70| 2a 20 53 74 61 72 74 20 | 6f 66 20 61 72 65 61 20 |* Start |of area |
|00000d80| 74 6f 20 70 6c 6f 74 20 | 69 6e 20 2a 2f 0d 0a 00 |to plot |in */...|
|00000d90| 00 00 00 69 6e 74 20 64 | 78 2c 64 79 3b 09 09 2f |...int d|x,dy;../|
|00000da0| 2a 20 53 69 7a 65 20 6f | 66 20 74 6f 20 70 6c 6f |* Size o|f to plo|
|00000db0| 74 20 69 6e 20 2a 2f 0d | 0a 00 00 00 00 6c 6f 6e |t in */.|.....lon|
|00000dc0| 67 20 68 5b 5d 3b 09 09 | 2f 2a 20 48 69 73 74 6f |g h[];..|/* Histo|
|00000dd0| 67 72 61 6d 20 61 72 72 | 61 79 20 2a 2f 0d 0a 00 |gram arr|ay */...|
|00000de0| 00 00 00 50 49 58 45 4c | 20 7a 3b 09 09 2f 2a 20 |...PIXEL| z;../* |
|00000df0| 49 6e 65 6e 73 69 74 79 | 20 76 61 6c 75 65 20 74 |Inensity| value t|
|00000e00| 6f 20 75 73 65 20 66 6f | 72 20 70 6c 6f 74 20 2a |o use fo|r plot *|
|00000e10| 2f 0d 0a 00 00 00 00 7b | 0d 0a 00 00 00 00 09 50 |/......{|.......P|
|00000e20| 49 58 45 4c 20 2a 62 70 | 2c 20 2a 62 75 66 3b 0d |IXEL *bp|, *buf;.|
|00000e30| 0a 00 00 00 00 09 72 65 | 67 69 73 74 65 72 20 69 |......re|gister i|
|00000e40| 6e 74 20 69 3b 0d 0a 00 | 00 00 00 09 69 6e 74 20 |nt i;...|....int |
|00000e50| 6c 65 6e 67 74 68 3b 0d | 0a 00 00 00 00 09 6c 6f |length;.|......lo|
|00000e60| 6e 67 20 6d 61 78 76 61 | 6c 3b 0d 0a 00 00 00 00 |ng maxva|l;......|
|00000e70| 09 64 6f 75 62 6c 65 20 | 78 73 66 2c 79 73 66 3b |.double |xsf,ysf;|
|00000e80| 09 2f 2a 20 58 20 61 6e | 64 20 59 20 73 63 61 6c |./* X an|d Y scal|
|00000e90| 65 20 66 61 63 74 6f 72 | 73 20 2a 2f 0d 0a 00 00 |e factor|s */....|
|00000ea0| 00 00 09 64 6f 75 62 6c | 65 20 78 66 3b 0d 0a 00 |...doubl|e xf;...|
|00000eb0| 00 00 00 0d 0a 00 00 00 | 00 2f 2a 20 46 69 6e 64 |........|./* Find|
|00000ec0| 20 74 68 65 20 6d 61 78 | 69 6d 75 6d 20 68 69 73 | the max|imum his|
|00000ed0| 74 6f 67 72 61 6d 20 76 | 61 6c 75 65 20 2a 2f 0d |togram v|alue */.|
|00000ee0| 0a 00 00 00 00 09 6d 61 | 78 76 61 6c 20 3d 20 30 |......ma|xval = 0|
|00000ef0| 4c 3b 0d 0a 00 00 00 00 | 09 66 6f 72 20 28 69 20 |L;......|.for (i |
|00000f00| 3d 20 30 20 3b 20 69 20 | 3c 20 50 49 58 45 4c 5f |= 0 ; i |< PIXEL_|
|00000f10| 53 49 5a 45 20 3b 20 69 | 2b 2b 29 20 7b 0d 0a 00 |SIZE ; i|++) {...|
|00000f20| 00 00 00 09 09 69 66 20 | 28 68 5b 69 5d 20 3e 20 |.....if |(h[i] > |
|00000f30| 6d 61 78 76 61 6c 29 20 | 6d 61 78 76 61 6c 20 3d |maxval) |maxval =|
|00000f40| 20 68 5b 69 5d 3b 0d 0a | 00 00 00 00 09 7d 0d 0a | h[i];..|.....}..|
|00000f50| 00 00 00 00 0d 0a 00 00 | 00 00 2f 2a 20 42 65 73 |........|../* Bes|
|00000f60| 74 20 74 6f 20 69 6e 63 | 6c 75 64 65 20 74 68 69 |t to inc|lude thi|
|00000f70| 73 20 63 68 65 63 6b 20 | 74 6f 20 70 72 65 76 65 |s check |to preve|
|00000f80| 6e 74 20 64 69 76 69 73 | 69 6f 6e 20 62 79 20 30 |nt divis|ion by 0|
|00000f90| 20 2a 2f 0d 0a 00 00 00 | 00 23 69 66 64 65 66 20 | */.....|.#ifdef |
|00000fa0| 43 48 45 43 4b 0d 0a 00 | 00 00 00 09 69 66 20 28 |CHECK...|....if (|
|00000fb0| 6d 61 78 76 61 6c 20 3d | 3d 20 30 4c 29 20 7b 0d |maxval =|= 0L) {.|
|00000fc0| 0a 00 00 00 00 09 09 70 | 72 69 6e 74 66 28 22 3c |.......p|rintf("<|
|00000fd0| 70 6c 6f 74 5f 68 69 73 | 74 6f 3e 20 4e 6f 20 76 |plot_his|to> No v|
|00000fe0| 61 6c 75 65 73 20 69 6e | 20 68 69 73 74 6f 67 72 |alues in| histogr|
|00000ff0| 61 6d 21 5c 6e 22 29 3b | 0d 0a 00 00 00 00 09 09 |am!\n");|........|
|00001000| 72 65 74 75 72 6e 28 45 | 52 52 4f 52 29 3b 0d 0a |return(E|RROR);..|
|00001010| 00 00 00 00 09 7d 0d 0a | 00 00 00 00 09 69 66 20 |.....}..|.....if |
|00001020| 28 50 49 58 45 4c 5f 53 | 49 5a 45 20 3d 3d 20 30 |(PIXEL_S|IZE == 0|
|00001030| 29 20 7b 0d 0a 00 00 00 | 00 09 09 70 72 69 6e 74 |) {.....|...print|
|00001040| 66 28 22 3c 70 6c 6f 74 | 5f 68 69 73 74 6f 3e 20 |f("<plot|_histo> |
|00001050| 50 49 58 45 4c 5f 53 49 | 5a 45 20 3d 3d 20 30 21 |PIXEL_SI|ZE == 0!|
|00001060| 5c 6e 22 29 3b 0d 0a 00 | 00 00 00 09 09 72 65 74 |\n");...|.....ret|
|00001070| 75 72 6e 28 45 52 52 4f | 52 29 3b 0d 0a 00 00 00 |urn(ERRO|R);.....|
|00001080| 00 09 7d 0d 0a 00 00 00 | 00 23 65 6e 64 69 66 0d |..}.....|.#endif.|
|00001090| 0a 00 00 00 00 0d 0a 00 | 00 00 00 2f 2a 20 43 68 |........|.../* Ch|
|000010a0| 65 63 6b 20 70 6c 6f 74 | 74 69 6e 67 20 61 72 65 |eck plot|ting are|
|000010b0| 61 20 2a 2f 0d 0a 00 00 | 00 00 23 69 66 64 65 66 |a */....|..#ifdef|
|000010c0| 20 43 48 45 43 4b 0d 0a | 00 00 00 00 09 69 66 20 | CHECK..|.....if |
|000010d0| 28 63 68 65 63 6b 5f 61 | 72 65 61 28 78 2c 79 2c |(check_a|rea(x,y,|
|000010e0| 64 78 2c 64 79 2c 22 3c | 70 6c 6f 74 5f 68 69 73 |dx,dy,"<|plot_his|
|000010f0| 74 6f 3e 22 29 20 3d 3d | 20 45 52 52 4f 52 29 0d |to>") ==| ERROR).|
|00001100| 0a 00 00 00 00 09 09 72 | 65 74 75 72 6e 28 45 52 |.......r|eturn(ER|
|00001110| 52 4f 52 29 3b 0d 0a 00 | 00 00 00 23 65 6e 64 69 |ROR);...|...#endi|
|00001120| 66 0d 0a 00 00 00 00 0d | 0a 00 00 00 00 2f 2a 20 |f.......|...../* |
|00001130| 43 6f 6d 70 75 74 65 20 | 73 63 61 6c 65 20 66 61 |Compute |scale fa|
|00001140| 63 74 6f 72 73 20 2a 2f | 0d 0a 00 00 00 00 09 78 |ctors */|.......x|
|00001150| 73 66 20 3d 20 28 64 6f | 75 62 6c 65 29 64 78 2f |sf = (do|uble)dx/|
|00001160| 28 64 6f 75 62 6c 65 29 | 50 49 58 45 4c 5f 53 49 |(double)|PIXEL_SI|
|00001170| 5a 45 3b 0d 0a 00 00 00 | 00 09 79 73 66 20 3d 20 |ZE;.....|..ysf = |
|00001180| 28 64 6f 75 62 6c 65 29 | 64 79 2f 28 64 6f 75 62 |(double)|dy/(doub|
|00001190| 6c 65 29 6d 61 78 76 61 | 6c 3b 0d 0a 00 00 00 00 |le)maxva|l;......|
|000011a0| 0d 0a 00 00 00 00 2f 2a | 20 41 6c 6c 6f 63 61 74 |....../*| Allocat|
|000011b0| 65 20 61 20 62 75 66 66 | 65 72 20 66 6f 72 20 64 |e a buff|er for d|
|000011c0| 72 61 77 69 6e 67 20 2a | 2f 0d 0a 00 00 00 00 09 |rawing *|/.......|
|000011d0| 62 70 20 3d 20 62 75 66 | 20 3d 20 28 50 49 58 45 |bp = buf| = (PIXE|
|000011e0| 4c 20 2a 29 6d 61 6c 6c | 6f 63 28 64 79 2a 73 69 |L *)mall|oc(dy*si|
|000011f0| 7a 65 6f 66 28 50 49 58 | 45 4c 29 29 3b 0d 0a 00 |zeof(PIX|EL));...|
|00001200| 00 00 00 0d 0a 00 00 00 | 00 2f 2a 20 46 69 6c 6c |........|./* Fill|
|00001210| 20 69 74 20 77 69 74 68 | 20 74 68 65 20 64 72 61 | it with| the dra|
|00001220| 77 69 6e 67 20 63 6f 6c | 6f 72 20 2a 2f 0d 0a 00 |wing col|or */...|
|00001230| 00 00 00 09 66 6f 72 20 | 28 69 20 3d 20 30 20 3b |....for |(i = 0 ;|
|00001240| 20 69 20 3c 20 64 79 20 | 3b 20 69 2b 2b 29 20 2a | i < dy |; i++) *|
|00001250| 62 70 2b 2b 20 3d 20 7a | 3b 0d 0a 00 00 00 00 0d |bp++ = z|;.......|
|00001260| 0a 00 00 00 00 2f 2a 20 | 44 72 61 77 20 68 69 73 |...../* |Draw his|
|00001270| 74 6f 67 72 61 6d 2e 20 | 20 52 45 4d 45 4d 42 45 |togram. | REMEMBE|
|00001280| 52 3a 20 56 69 64 65 6f | 20 63 6f 6f 72 64 69 6e |R: Video| coordin|
|00001290| 61 74 65 73 21 20 28 79 | 20 69 6e 63 72 65 61 73 |ates! (y| increas|
|000012a0| 65 73 20 44 4f 57 4e 29 | 20 2a 2f 0d 0a 00 00 00 |es DOWN)| */.....|
|000012b0| 00 09 78 66 20 3d 20 28 | 64 6f 75 62 6c 65 29 78 |..xf = (|double)x|
|000012c0| 3b 0d 0a 00 00 00 00 09 | 66 6f 72 20 28 69 20 3d |;.......|for (i =|
|000012d0| 20 30 20 3b 20 69 20 3c | 20 50 49 58 45 4c 5f 53 | 0 ; i <| PIXEL_S|
|000012e0| 49 5a 45 20 3b 20 69 2b | 2b 29 20 7b 0d 0a 00 00 |IZE ; i+|+) {....|
|000012f0| 00 00 09 09 6c 65 6e 67 | 74 68 20 3d 20 28 69 6e |....leng|th = (in|
|00001300| 74 29 28 28 64 6f 75 62 | 6c 65 29 68 5b 69 5d 2a |t)((doub|le)h[i]*|
|00001310| 79 73 66 29 3b 0d 0a 00 | 00 00 00 09 09 77 72 69 |ysf);...|.....wri|
|00001320| 74 65 5f 76 6c 69 6e 65 | 28 28 69 6e 74 29 78 66 |te_vline|((int)xf|
|00001330| 2c 79 2b 28 64 79 2d 6c | 65 6e 67 74 68 29 2c 6c |,y+(dy-l|ength),l|
|00001340| 65 6e 67 74 68 2c 62 75 | 66 29 3b 0d 0a 00 00 00 |ength,bu|f);.....|
|00001350| 00 09 09 78 66 20 2b 3d | 20 78 73 66 3b 0d 0a 00 |...xf +=| xsf;...|
|00001360| 00 00 00 09 7d 0d 0a 00 | 00 00 00 09 66 72 65 65 |....}...|....free|
|00001370| 28 62 75 66 29 3b 0d 0a | 00 00 00 00 09 72 65 74 |(buf);..|.....ret|
|00001380| 75 72 6e 28 4f 4b 29 3b | 0d 0a 00 00 00 00 7d 0d |urn(OK);|......}.|
|00001390| 0a 00 00 00 00 0d 0a 00 | 00 00 00 2f 2a 20 3d 3d |........|.../* ==|
|000013a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 20 45 |========|====== E|
|000013b0| 6e 64 20 6f 66 20 73 69 | 6d 70 6f 69 6e 74 2e 63 |nd of si|mpoint.c|
|000013c0| 20 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d | =======|========|
|000013d0| 3d 20 2a 2f 0d 0a 00 00 | 00 00 0d 0a 00 00 00 00 |= */....|........|
|000013e0| 2f 2a 20 3c 2d 2d 20 46 | 49 4c 45 20 42 52 45 41 |/* <-- F|ILE BREA|
|000013f0| 4b 20 2d 2d 3e 20 2a 2f | 0d 0a 00 00 00 00 25 20 |K --> */|......% |
|00001400| 1a 72 6e 28 4f 4b 29 3b | 0d 0a 00 00 00 00 7d 0d |.rn(OK);|......}.|
|00001410| 0a 00 00 00 00 0d 0a 00 | 00 00 00 2f 2a 20 3d 3d |........|.../* ==|
|00001420| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 20 45 |========|====== E|
|00001430| 6e 64 20 6f 66 20 73 69 | 6d 70 6f 69 6e 74 2e 63 |nd of si|mpoint.c|
|00001440| 20 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d | =======|========|
|00001450| 3d 20 2a 2f 0d 0a 00 00 | 00 00 0d 0a 00 00 00 00 |= */....|........|
|00001460| 2f 2a 20 3c 2d 2d 20 46 | 49 4c 45 20 42 52 45 41 |/* <-- F|ILE BREA|
|00001470| 4b 20 2d 2d 3e 20 2a 2f | 0d 0a 00 00 00 00 25 20 |K --> */|......% |
+--------+-------------------------+-------------------------+--------+--------+